package Negocio;

import java.util.ArrayList;
import java.util.Date;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;

import Interfaz.EnvioDTO;

@Entity
@DiscriminatorValue("EnvioPuertaAPuerta")
public class EnvioPuertaAPuerta  extends Envio {

		private Direccion direccionOrigen;
		private Direccion direccionDestino;
		

		
		public EnvioPuertaAPuerta() {
		}


		public EnvioPuertaAPuerta(Cliente cliente, Date fechaRecepcion,
				Date fechaMaximaEntrega, String nombreDestinatario, String apellidoDestinatario,
				String dniDestinatario, Float anchoCM, Float altoCM, Float profundidadCM,
				Float pesoKG, Float volumenM3, Integer refrigerado,
				Integer fragilidad, Integer peligrosidad, Integer apilable,
				String especiales, String manifiesto, Direccion direccionOrigen, Direccion direccionDestino) {
			super();
			this.cliente = cliente;
			this.fechaRecepcion = fechaRecepcion;
			this.fechaEntregaComprometida = fechaMaximaEntrega;
			this.destinatarios = new ArrayList<Destinatario>();
			destinatarios.add(new Destinatario (nombreDestinatario, apellidoDestinatario, dniDestinatario));
			this.contratosConTerceros = new ArrayList<ContratoConTerceros>();
			this.carga = new Carga(anchoCM, altoCM, profundidadCM,
					 pesoKG, volumenM3, refrigerado,
					fragilidad, peligrosidad, apilable,
					especiales, manifiesto);
		}


		public EnvioPuertaAPuerta(Cliente cliente, String calleOrigen,
				String numeroOrigen, String paisOrigen, String pisoOrigen,
				String departamentoOrigen, String entreCalle1Origen,
				String entreCalle2Origen, String localidadOrigen,
				String provinciaOrigen, String codigoPostalOrigen,
				String latitudOrigen, String longitudOrigen,
				String calleDestino, String numeroDestino, String paisDestino,
				String pisoDestino, String departamentoDestino,
				String entreCalle1Destino, String entreCalle2Destino,
				String localidadDestino, String provinciaDestino,
				String codigoPostalDestino, String latitudDestino,
				String longitudDestino, 
				Date fechaRecepcion, 
				Date fechaEntregaComprometida, 
				Date fechaLimiteDeDespacho,
				 String nombreDestinatario,
				String apellidoDestinatario, String dniDestinatario,
				Float anchoCM, Float altoCM, Float profundidadCM, Float pesoKG,
				Float volumenM3, Integer refrigerado, Integer fragilidad,
				Integer peligrosidad, Integer apilable, String especiales,
				String manifiesto) {
		
			this.cliente = cliente;
			this.fechaRecepcion = fechaRecepcion;
			this.fechaEntregaComprometida = fechaEntregaComprometida;
			this.fechaLimiteDeDespacho = fechaLimiteDeDespacho;
			this.destinatarios = new ArrayList<Destinatario>();
			destinatarios.add(new Destinatario (nombreDestinatario, apellidoDestinatario, dniDestinatario));
			this.contratosConTerceros = new ArrayList<ContratoConTerceros>();
			this.carga = new Carga(anchoCM, altoCM, profundidadCM,
					 pesoKG, volumenM3, refrigerado,
					fragilidad, peligrosidad, apilable,
					especiales, manifiesto);
			this.direccionOrigen = new Direccion(calleOrigen, numeroOrigen, paisOrigen, pisoOrigen,
					departamentoOrigen, entreCalle1Origen, entreCalle2Origen,
					localidadOrigen, provinciaOrigen, codigoPostalOrigen, latitudOrigen, longitudOrigen);
			this.direccionDestino = new Direccion(calleDestino, numeroDestino, paisDestino, pisoDestino,
					departamentoDestino, entreCalle1Destino, entreCalle2Destino,
					localidadDestino, provinciaDestino, codigoPostalDestino, latitudDestino, longitudDestino);
		}


		public Direccion getDireccionOrigen() {
			return direccionOrigen;
		}


		public void setDireccionOrigen(Direccion direccionOrigen) {
			this.direccionOrigen = direccionOrigen;
		}


		public Direccion getDireccionDestino() {
			return direccionDestino;
		}


		public void setDireccionDestino(Direccion direccionDestino) {
			this.direccionDestino = direccionDestino;
		}
		
		public EnvioDTO getDTO() {
			return null;
		}
		
		
	}
